(function() {    
    var cabecalhoInjetado = false;
    
    function injetarCabecalho() {
        if (cabecalhoInjetado)
            return;
            
        cabecalhoInjetado = true;

        // Evitar alertas de segurança, quando protocolo https for utilizado.
        var protocolo = (document.location.protocol == "https:" ? "https" : "http");
        
        // Injeta o CSS para o cabeçalho.
        function injetarCSS() {
            var tagHead = document.getElementsByTagName("head");
            
            if (tagHead.length == 0) {
                throw "Cabeçalho não encontrado";
            }
                        
            var link = document.createElement("LINK");
            link.setAttribute("rel", "stylesheet");
            link.setAttribute("type", "text/css");
            link.setAttribute("href", protocolo + "://www.receita.fazenda.gov.br/css/styleHeader.css");
            
            tagHead.item(0).appendChild(link);
        }
        
        // Injeta o conteúdo HTML para o cabeçalho.
        function injetarHtml() {
	        var html;
        	
	        html = '   <div class="HeaderBg1"> ';
	        html += '   	<a href="http://www.fazenda.gov.br/"><img src="' + protocolo + '://www.receita.fazenda.gov.br/images/titArea.jpg" width="272" height="35" alt="República Federativa do Brasil" align="left" border="0"/></a>';
	        html += '       <div class="HeaderText"></div> ';
	        html += '       <div class="HeaderBg2"><img src="' + protocolo + '://www.receita.fazenda.gov.br/images/bgHeaderLogoBrasil.jpg" width="121" height="35" alt="" /></div> ';
	        html += '   </div> ';
        	
	        var cabecalho = document.createElement("DIV");
	        
	        cabecalho.setAttribute("id", "HeaderPorcent");
	        cabecalho.innerHTML = html;
        	
            document.body.insertBefore(cabecalho, document.body.firstChild);
        }
        
        injetarCSS();
        injetarHtml();
    }

    // Tenta utilizar o jQuery, se disponível, para realizar injeção quando o documento for carregado.
    if (typeof(jQuery) != "undefined" && jQuery)
        jQuery(injetarCabecalho);
    
    // Verifica se já existe o corpo do documento.
    else if (document.body)
        injetarCabecalho()
    
    // Tenta injetar posteriormente.
    else {
        /*** Tratamento de conclusão de carga do DOM (baseado no código do jQuery) ***/
        
        // Função de limpeza de evento de carga do DOM.
        var DOMContentLoaded;
        
        if (document.addEventListener) {
            DOMContentLoaded = function() {
                document.removeEventListener(
                    "DOMContentLoaded", DOMContentLoaded, false
                );
                injetarCabecalho();
            };
        } else if (document.attachEvent) {
            DOMContentLoaded = function() {
                if (document.readyState === "complete") {
                    document.detachEvent("onreadystatechange", DOMContentLoaded);
                    injetarCabecalho();
                }
            };
        }
        
        // The DOM ready check for Internet Explorer
        function doScrollCheck() {
            if (cabecalhoInjetado) {
                return;
            }

            try {
                // Código de Diego Perini
                // http://javascript.nwbox.com/IEContentLoaded/
                document.documentElement.doScroll("left");
            } catch(e) {
                setTimeout(doScrollCheck, 1);
                return;
            }

            injetarCabecalho();
        }    

        // Verifica o caso do documento já está carregado
        if (document.readyState === "complete") {
            injetarCabecalho();
        }

        // Mozilla, Opera e webkit
        if (document.addEventListener) {
            document.addEventListener("DOMContentLoaded", DOMContentLoaded, false);
            window.addEventListener("load", injetarCabecalho, false);

        // Modelo de evento do IE
        } else if (document.attachEvent) {
            document.attachEvent("onreadystatechange", DOMContentLoaded);
            window.attachEvent("onload", injetarCabecalho);

            var toplevel = false;

            try {
                toplevel = window.frameElement == null;
            } catch(e) {}

            if (document.documentElement.doScroll && toplevel) {
                doScrollCheck();
            }
        }
    }
    
})();